协程方式按行读取文件内容。
function Coroutine::fgets(resource $handle);
Co::fgets
底层使用了php_stream
缓存区,默认大小为8192
字节,可使用stream_set_chunk_size
设置缓存区尺寸。
需要
2.1.1
或更高版本
fgets
函数仅可用于文件类型的stream
资源
$handle
文件句柄,必须是fopen
打开的文件类型stream
资源
- 读取到
EOL
(\r
或\n
)将返回一行数据,包括EOL
- 未读取到
EOL
,但内容长度超过php_stream
缓存区8192
字节,将返回8192
字节的数据,不包含EOL
- 达到文件末尾
EOF
时,返回空字符串,可用feof
判断文件是否已读完 - 读取失败返回
false
,使用swoole_last_error
函数获取错误码
$fp = fopen(__DIR__ . "/defer_client.php", "r");
go(function () use ($fp)
{
$r = co::fgets($fp);
var_dump($r);
});